/*
 * Copyright (c) 2018. 玺得（深圳）科技有限公司.保留所有权利. http://www.pi-top.com/ 玺得（深圳）科技有限公司保留所有代码著作权.如有任何疑问请访问官方网站与我们联系. 代码只针对特定需求定制编码，不得在未经允许或授权的情况下对外传播扩散.恶意传播者，法律后果自行承担. 本代码仅用于pps-cloud系统.
 */
package com.pitop.staff.api;

import com.pitop.staff.entity.Staff;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;

/**
 * 员工信息 api请求熔断器 熔断实现
 *
 * @author pi-top
 */
@Component
public class StaffFeignApiImpl implements StaffFeignApi {
    /**
     * 查询Staff一个详情信息
     *
     * @param id
     * @param code 唯一编码
     * @return BeanRet
     */
    @Override
    public Staff load(@RequestParam("id") java.lang.Long id, @RequestParam("code") java.lang.String code) {
        return new Staff();
    }


    /**
     * 根据条件id查询Staff一个详情信息
     *
     * @param id
     * @return BeanRet
     */
    @Override
    public Staff loadById(@RequestParam("id") java.lang.Long id) {
        return new Staff();
    }

    /**
     * 根据条件code查询Staff一个详情信息
     *
     * @param code 唯一编码
     * @return BeanRet
     */
    @Override
    public Staff loadByCode(@RequestParam("code") java.lang.String code) {
        return new Staff();
    }


    /**
     * 查询Staff信息集合
     *
     * @return 分页对象
     */
    @Override
    public List<Staff> list(@RequestBody Staff staff, int curPage, int pageSize) {
        return new ArrayList();
    }


    /**
     * 查询Staff信息集合
     *
     * @return 分页对象
     */
    @Override
    public List<Staff> listByPk(java.lang.Long id, java.lang.String code, int curPage, int pageSize) {
        return new ArrayList();
    }


    @Override
    public Integer count(@RequestParam("id") java.lang.Long id, @RequestParam("code") java.lang.String code) {
        return 0;
    }

    @Override
    public Integer count(@RequestBody Staff staff) {
        return 0;
    }

    /**
     * 创建Staff
     *
     * @return BeanRet
     */
    @Override
    public Staff build(@RequestBody Staff staff) {
        return new Staff();
    }


    /**
     * 修改Staff
     *
     * @return BeanRet
     */
    @Override
    public Staff modify(@RequestBody Staff staff) {
        return new Staff();
    }

    /**
     * 删除Staff
     *
     * @return BeanRet
     */
    @Override
    public void delete(@RequestParam("id") java.lang.Long id, @RequestParam("code") java.lang.String code) {
        return;
    }

    /**
     * 根据员工号和姓名模糊查询
     *
     * @param jobNumber
     * @param name
     * @param factoryCode 工厂code
     * @param curPage
     * @param pageSize
     * @return
     */
    public List<Staff> listByJobNumberAndNameAndFactoryCode(@RequestParam("jobNumber") String jobNumber, @RequestParam("name") String name, @RequestParam("factoryCode") String factoryCode, @RequestParam("curPage") Integer curPage, @RequestParam("pageSize") Integer pageSize) {
        return new ArrayList<>();
    }

    /**
     * 根据员工工号和姓名模糊查询出来的数据的总数
     *
     * @param jobNumber
     * @param name
     * @param factoryCode 工厂code
     * @return
     */
    @RequestMapping(value = "/staff/countByJobNumberAndNameAndFactroyCode", method = RequestMethod.GET)
    public Integer countByJobNumberAndNameAndFactroyCode(@RequestParam("jobNumber") String jobNumber, @RequestParam("name") String name, @RequestParam("factoryCode") String factoryCode) {
        return 0;
    }

    /**
     * 根据员工号查询staff
     *
     * @param jobNumber 员工号
     * @return Staff
     */
    @PostMapping("/staff/loadStaffByJobNumber")
    public Staff loadStaffByJobNumber(@RequestParam("jobNumber") String jobNumber) {
        return new Staff();
    }


    /**
     * 根据员工号和工厂编码查询staff
     *
     * @param jobNumber   员工号
     * @param factoryCode 工厂编码
     * @return Staff
     */
    @PostMapping("/staff/loadStaffByJobNumberAndFactoryCode")
    public Staff loadStaffByJobNumberAndFactoryCode(@RequestParam("jobNumber") String jobNumber, @RequestParam("factoryCode") String factoryCode) {
        return new Staff();
    }

}
